using System;

namespace Yahtzee.Game
{
    public class Dobbelsteen
    {
        private const int NIET_GEGOOID = -1;

        private int aantalOgen;
        private bool isVastgezet;
        private static Random rnd = new Random();

        public Dobbelsteen()
        {
            isVastgezet = false;
            aantalOgen = NIET_GEGOOID;
        }

        public void gooi()
        {
            if (!isVastgezet)
            {
                aantalOgen = rnd.Next(6) + 1;
            }
        }

        private bool isErAlGegooid()
        {
            return aantalOgen > NIET_GEGOOID;
        }

        public void zetVast(bool vast)
        {
            if (!isErAlGegooid())
            {
                throw new Exception("Er is nog niet gegooid met de dobbelsteen");
            }
            this.isVastgezet = vast;
        }

        public int geefWaarde()
        {
            if (!isErAlGegooid())
            {
                throw new Exception("Er is nog niet gegooid met de dobbelsteen");
            }
            return aantalOgen;
        }

        public bool geefVast()
        {
            return isVastgezet;
        }
    }
}